#ifndef _IOT_TIMER_H_
#define _IOT_TIMER_H_

#include "iot_msg.h" 

typedef void (*iot_timer_func_ptr)(void *param_ptr);

typedef enum
{
	IOT_TIMER_ID_TIMER1 = 0,
    IOT_TIMER_ID_TIMER2,
    IOT_TIMER_ID_TIMER3,
    IOT_TIMER_ID_TIMER4,
    IOT_TIMER_ID_TIMER5,
    IOT_TIMER_ID_TIMER6,
    IOT_TIMER_ID_TIMER7,
    IOT_TIMER_ID_TIMER8,
    IOT_TIMER_ID_TIMER9,
    IOT_TIMER_ID_TIMER10,
    IOT_TIMER_ID_TIMER11,
    IOT_TIMER_ID_TIMER12,
    IOT_TIMER_ID_TIMER13,
    IOT_TIMER_ID_TIMER14,
    IOT_TIMER_ID_TIMER15,
    IOT_TIMER_ID_TIMER16,
    IOT_TIMER_ID_MAX
}iot_E_TimerId;

extern iot_bool_t iot_initTimer(iot_E_TimerId timerId, iot_uint16_t modId);
extern iot_bool_t iot_startTimer(iot_E_TimerId timerId,iot_uint32_t tick, iot_timer_func_ptr event_hf, void *arg);
extern iot_bool_t iot_stopTimer(iot_E_TimerId timerId);
extern iot_E_TimerId iot_getTimerId(iot_S_Msg *msg);
extern iot_bool_t iot_isTimeExpiredValid(iot_E_TimerId timerId);
extern void iot_timerExpiryHandle(iot_E_TimerId timerId);

#endif

